home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 April: Mac OS SDK / Dev.CD Apr 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / AIncludes / AEObjects.a < prev    next >
Encoding:
Text File  |  1998-02-12  |  8.1 KB  |  239 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        AEObjects.a
  3. ;
  4. ;    Contains:    Object Support Library Interfaces.
  5. ;
  6. ;    Version:    Technology:    System 7.5
  7. ;                Release:    Universal Interfaces 3.1
  8. ;
  9. ;    Copyright:    © 1991-1998 by Apple Computer, Inc., all rights reserved
  10. ;
  11. ;    Bugs?:        Please include the the file and version information (from above) with
  12. ;                the problem description.  Developers belonging to one of the Apple
  13. ;                developer programs can submit bug reports to:
  14. ;
  15. ;                    devsupport@apple.com
  16. ;
  17. ;
  18.     IF &TYPE('__AEOBJECTS__') = 'UNDEFINED' THEN
  19. __AEOBJECTS__ SET 1
  20.  
  21.     IF &TYPE('__OSUTILS__') = 'UNDEFINED' THEN
  22.     include 'OSUtils.a'
  23.     ENDIF
  24.     IF &TYPE('__APPLEEVENTS__') = 'UNDEFINED' THEN
  25.     include 'AppleEvents.a'
  26.     ENDIF
  27.     IF &TYPE('__ERRORS__') = 'UNDEFINED' THEN
  28.     include 'Errors.a'
  29.     ENDIF
  30.     IF &TYPE('__EVENTS__') = 'UNDEFINED' THEN
  31.     include 'Events.a'
  32.     ENDIF
  33.  
  34.  
  35.                                                             ;***    LOGICAL OPERATOR CONSTANTS    ***
  36. kAEAND                            EQU        'AND '                ;  0x414e4420  
  37. kAEOR                            EQU        'OR  '                ;  0x4f522020  
  38. kAENOT                            EQU        'NOT '                ;  0x4e4f5420  
  39.                                                             ;***    ABSOLUTE ORDINAL CONSTANTS    ***
  40. kAEFirst                        EQU        'firs'                ;  0x66697273  
  41. kAELast                            EQU        'last'                ;  0x6c617374  
  42. kAEMiddle                        EQU        'midd'                ;  0x6d696464  
  43. kAEAny                            EQU        'any '                ;  0x616e7920  
  44. kAEAll                            EQU        'all '                ;  0x616c6c20  
  45.                                                             ;***    RELATIVE ORDINAL CONSTANTS    ***
  46. kAENext                            EQU        'next'                ;  0x6e657874  
  47. kAEPrevious                        EQU        'prev'                ;  0x70726576  
  48.                                                             ;***    KEYWORD CONSTANT     ***
  49. keyAECompOperator                EQU        'relo'                ;  0x72656c6f  
  50. keyAELogicalTerms                EQU        'term'                ;  0x7465726d  
  51. keyAELogicalOperator            EQU        'logc'                ;  0x6c6f6763  
  52. keyAEObject1                    EQU        'obj1'                ;  0x6f626a31  
  53. keyAEObject2                    EQU        'obj2'                ;  0x6f626a32  
  54.                                                             ;    ... for Keywords for getting fields out of object specifier records. 
  55. keyAEDesiredClass                EQU        'want'                ;  0x77616e74  
  56. keyAEContainer                    EQU        'from'                ;  0x66726f6d  
  57. keyAEKeyForm                    EQU        'form'                ;  0x666f726d  
  58. keyAEKeyData                    EQU        'seld'                ;  0x73656c64  
  59.  
  60.                                                             ;    ... for Keywords for getting fields out of Range specifier records. 
  61. keyAERangeStart                    EQU        'star'                ;  0x73746172  
  62. keyAERangeStop                    EQU        'stop'                ;  0x73746f70  
  63.                                                             ;    ... special handler selectors for OSL Callbacks. 
  64. keyDisposeTokenProc                EQU        'xtok'                ;  0x78746f6b  
  65. keyAECompareProc                EQU        'cmpr'                ;  0x636d7072  
  66. keyAECountProc                    EQU        'cont'                ;  0x636f6e74  
  67. keyAEMarkTokenProc                EQU        'mkid'                ;  0x6d6b6964  
  68. keyAEMarkProc                    EQU        'mark'                ;  0x6d61726b  
  69. keyAEAdjustMarksProc            EQU        'adjm'                ;  0x61646a6d  
  70. keyAEGetErrDescProc                EQU        'indc'                ;  0x696e6463  
  71. ; ***    VALUE and TYPE CONSTANTS    ***
  72.  
  73.                                                             ;    ... possible values for the keyAEKeyForm field of an object specifier. 
  74. formAbsolutePosition            EQU        'indx'                ;  0x696e6478  
  75. formRelativePosition            EQU        'rele'                ;  0x72656c65  
  76. formTest                        EQU        'test'                ;  0x74657374  
  77. formRange                        EQU        'rang'                ;  0x72616e67  
  78. formPropertyID                    EQU        'prop'                ;  0x70726f70  
  79. formName                        EQU        'name'                ;  0x6e616d65  
  80.                                                             ;    ... relevant types (some of these are often pared with forms above). 
  81. typeObjectSpecifier                EQU        'obj '                ;  0x6f626a20  
  82. typeObjectBeingExamined            EQU        'exmn'                ;  0x65786d6e  
  83. typeCurrentContainer            EQU        'ccnt'                ;  0x63636e74  
  84. typeToken                        EQU        'toke'                ;  0x746f6b65  
  85. typeRelativeDescriptor            EQU        'rel '                ;  0x72656c20  
  86. typeAbsoluteOrdinal                EQU        'abso'                ;  0x6162736f  
  87. typeIndexDescriptor                EQU        'inde'                ;  0x696e6465  
  88. typeRangeDescriptor                EQU        'rang'                ;  0x72616e67  
  89. typeLogicalDescriptor            EQU        'logi'                ;  0x6c6f6769  
  90. typeCompDescriptor                EQU        'cmpd'                ;  0x636d7064  
  91. typeOSLTokenList                EQU        'ostl'                ;  0x6F73746C  
  92. ;  Possible values for flags parameter to AEResolve.  They're additive 
  93.  
  94. kAEIDoMinimum                    EQU        $0000
  95. kAEIDoWhose                        EQU        $0001
  96. kAEIDoMarking                    EQU        $0004
  97. kAEPassSubDescs                    EQU        $0008
  98. kAEResolveNestedLists            EQU        $0010
  99. kAEHandleSimpleRanges            EQU        $0020
  100. kAEUseRelativeIterators            EQU        $0040
  101. ; *** SPECIAL CONSTANTS FOR CUSTOM WHOSE-CLAUSE RESOLUTION 
  102.  
  103. typeWhoseDescriptor                EQU        'whos'                ;  0x77686f73  
  104. formWhose                        EQU        'whos'                ;  0x77686f73  
  105. typeWhoseRange                    EQU        'wrng'                ;  0x77726e67  
  106. keyAEWhoseRangeStart            EQU        'wstr'                ;  0x77737472  
  107. keyAEWhoseRangeStop                EQU        'wstp'                ;  0x77737470  
  108. keyAEIndex                        EQU        'kidx'                ;  0x6b696478  
  109. keyAETest                        EQU        'ktst'                ;  0x6b747374  
  110. ; *
  111. ;    used for rewriting tokens in place of 'ccnt' descriptors
  112. ;    This record is only of interest to those who, when they...
  113. ;    ...get ranges as key data in their accessor procs, choose
  114. ;    ...to resolve them manually rather than call AEResolve again.
  115. ;*
  116.  
  117. ccntTokenRecord            RECORD 0
  118. tokenClass                 ds.l    1                ; offset: $0 (0)
  119. token                     ds        AEDesc            ; offset: $4 (4)
  120. sizeof                     EQU *                    ; size:   $C (12)
  121.                         ENDR
  122. ; typedef struct ccntTokenRecord *        ccntTokenRecPtr
  123.  
  124. ; typedef ccntTokenRecPtr *                ccntTokenRecHandle
  125.  
  126.     IF OLDROUTINENAMES THEN
  127. ; typedef struct AEDesc *                DescPtr
  128.  
  129. ; typedef DescPtr *                        DescHandle
  130.  
  131.     ENDIF    ; OLDROUTINENAMES
  132. ;  typedefs providing type checking for procedure pointers 
  133.  
  134.  
  135.  
  136. ;
  137. ; pascal OSErr AEObjectInit(void )
  138. ;
  139.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  140.         IMPORT_CFM_FUNCTION AEObjectInit
  141.     ENDIF
  142.  
  143. ;  Not done by inline, but by direct linking into code.  It sets up the pack
  144. ;  such that further calls can be via inline 
  145. ;
  146. ; pascal OSErr AESetObjectCallbacks(OSLCompareUPP myCompareProc, OSLCountUPP myCountProc, OSLDisposeTokenUPP myDisposeTokenProc, OSLGetMarkTokenUPP myGetMarkTokenProc, OSLMarkUPP myMarkProc, OSLAdjustMarksUPP myAdjustMarksProc, OSLGetErrDescUPP myGetErrDescProcPtr)
  147. ;
  148.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  149.         Macro
  150.         _AESetObjectCallbacks
  151.             move.w              #$0E35,D0
  152.             dc.w                $A816
  153.         EndM
  154.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  155.         IMPORT_CFM_FUNCTION AESetObjectCallbacks
  156.     ENDIF
  157.  
  158. ;
  159. ; pascal OSErr AEResolve(const AEDesc *objectSpecifier, short callbackFlags, AEDesc *theToken)
  160. ;
  161.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  162.         Macro
  163.         _AEResolve
  164.             move.w              #$0536,D0
  165.             dc.w                $A816
  166.         EndM
  167.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  168.         IMPORT_CFM_FUNCTION AEResolve
  169.     ENDIF
  170.  
  171. ;
  172. ; pascal OSErr AEInstallObjectAccessor(DescType desiredClass, DescType containerType, OSLAccessorUPP theAccessor, long accessorRefcon, Boolean isSysHandler)
  173. ;
  174.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  175.         Macro
  176.         _AEInstallObjectAccessor
  177.             move.w              #$0937,D0
  178.             dc.w                $A816
  179.         EndM
  180.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  181.         IMPORT_CFM_FUNCTION AEInstallObjectAccessor
  182.     ENDIF
  183.  
  184. ;
  185. ; pascal OSErr AERemoveObjectAccessor(DescType desiredClass, DescType containerType, OSLAccessorUPP theAccessor, Boolean isSysHandler)
  186. ;
  187.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  188.         Macro
  189.         _AERemoveObjectAccessor
  190.             move.w              #$0738,D0
  191.             dc.w                $A816
  192.         EndM
  193.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  194.         IMPORT_CFM_FUNCTION AERemoveObjectAccessor
  195.     ENDIF
  196.  
  197. ;
  198. ; pascal OSErr AEGetObjectAccessor(DescType desiredClass, DescType containerType, OSLAccessorUPP *accessor, long *accessorRefcon, Boolean isSysHandler)
  199. ;
  200.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  201.         Macro
  202.         _AEGetObjectAccessor
  203.             move.w              #$0939,D0
  204.             dc.w                $A816
  205.         EndM
  206.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  207.         IMPORT_CFM_FUNCTION AEGetObjectAccessor
  208.     ENDIF
  209.  
  210. ;
  211. ; pascal OSErr AEDisposeToken(AEDesc *theToken)
  212. ;
  213.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  214.         Macro
  215.         _AEDisposeToken
  216.             move.w              #$023A,D0
  217.             dc.w                $A816
  218.         EndM
  219.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  220.         IMPORT_CFM_FUNCTION AEDisposeToken
  221.     ENDIF
  222.  
  223. ;
  224. ; pascal OSErr AECallObjectAccessor(DescType desiredClass, const AEDesc *containerToken, DescType containerClass, DescType keyForm, const AEDesc *keyData, AEDesc *token)
  225. ;
  226.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  227.         Macro
  228.         _AECallObjectAccessor
  229.             move.w              #$0C3B,D0
  230.             dc.w                $A816
  231.         EndM
  232.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  233.         IMPORT_CFM_FUNCTION AECallObjectAccessor
  234.     ENDIF
  235.  
  236.  
  237.     ENDIF ; __AEOBJECTS__ 
  238.  
  239.